package com.hl.mapper;

import java.util.List;
import com.hl.domain.Coupon;
import com.hl.domain.CouponProduct;
import org.apache.ibatis.annotations.Select;

/**
 * 优惠券Mapper接口
 * 
 * @author ruoyi
 * @date 2025-08-08
 */
public interface CouponMapper 
{
//

    //查询数据库中状态为未开始的优惠券
//    @Select("select id,start_time,end_time from coupon where status='CREATED'")
    List<Coupon> selectCouponstatus();

    //查询数据库中状态为进行中的优惠券
//    @Select("select id,start_time,end_time from coupon where status='ACTIVE'")
    List<Coupon> selectCouponstatus1();
    /**
     * 查询优惠券
     * 
     * @param id 优惠券主键
     * @return 优惠券
     */
    public Coupon selectCouponById(String id);

    /**
     * 查询优惠券列表
     * 
     * @param coupon 优惠券
     * @return 优惠券集合
     */
    public List<Coupon> selectCouponList(Coupon coupon);

    /**
     * 新增优惠券
     * 
     * @param coupon 优惠券
     * @return 结果
     */
    public int insertCoupon(Coupon coupon);
//int insertCouponProduct(CouponProduct couponProduct);
    /**
     * 修改优惠券
     * 
     * @param coupon 优惠券
     * @return 结果
     */
    public int updateCoupon(Coupon coupon);

    /**
     * 删除优惠券
     * 
     * @param id 优惠券主键
     * @return 结果
     */
    public int deleteCouponById(String id);

    /**
     * 批量删除优惠券
     * 
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteCouponByIds(String[] ids);

    /**
     * 批量删除优惠券-商品关联（scope_type=PRODUCT时生效）
     * 
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteCouponProductByCouponIds(String[] ids);
    
    /**
     * 批量新增优惠券-商品关联（scope_type=PRODUCT时生效）
     * 
     * @param couponProductList 优惠券-商品关联（scope_type=PRODUCT时生效）列表
     * @return 结果
     */
    public int batchCouponProduct(List<CouponProduct> couponProductList);
    

    /**
     * 通过优惠券主键删除优惠券-商品关联（scope_type=PRODUCT时生效）信息
     * 
     * @param id 优惠券ID
     * @return 结果
     */
    public int deleteCouponProductByCouponId(String id);
}
